package stack;

import java.util.*;

import wv.TestAllVariations;
import stack.programs.bad.*;
import stack.tests.*;

public class TestAllVariationsImpl {
	
	

	public static void main(String args[])
	{
		List<Class<?>> testClasses;
		List<Class<?>> programClasses;
		testClasses = new ArrayList<Class<?>>();
		testClasses.add(StackTestProperty1.class);
		testClasses.add(StackTestProperty2.class);
		testClasses.add(StackTestProperty2a.class);
		testClasses.add(StackTestProperty2b.class);
		testClasses.add(StackTestProperty3a.class);
		testClasses.add(StackTestProperty3b.class);
		testClasses.add(StackTestProperty4.class);
		testClasses.add(StackTestProperty4a.class);
		testClasses.add(StackTestProperty4b.class);
		testClasses.add(StackTestProperty5.class);
		testClasses.add(StackTestProperty7.class);
		testClasses.add(StackTest2_1_2.class);
		testClasses.add(StackTest2_1_4.class);
		testClasses.add(StackTest2_1_6.class);
		testClasses.add(StackTest2_1_7.class);
		testClasses.add(StackTest2_1_8.class);
		testClasses.add(StackTest2_2_4.class);
		testClasses.add(StackTest2_2_6.class);
		testClasses.add(StackTest2_2_7.class);
		testClasses.add(StackTest2_2_8.class);
		testClasses.add(StackTest2_3_4.class);
		testClasses.add(StackTest2_4_6.class);
		testClasses.add(StackTest2_4_7.class);
		testClasses.add(StackTest2_4_8.class);
		testClasses.add(StackTest2_5_6.class);
		testClasses.add(StackTest2_6_7.class);
		testClasses.add(StackTest2_6_8.class);
		testClasses.add(StackTest2_7_8.class);
		testClasses.add(StackTest3_1_2_4.class);
		testClasses.add(StackTest3_1_2_6.class);
		testClasses.add(StackTest3_1_2_7.class);
		testClasses.add(StackTest3_1_2_8.class);
		testClasses.add(StackTest3_1_3_4.class);
		testClasses.add(StackTest3_1_4_6.class);
		testClasses.add(StackTest3_1_4_7.class);
		testClasses.add(StackTest3_1_4_8.class);
		testClasses.add(StackTest3_1_5_6.class);
		testClasses.add(StackTest3_1_6_7.class);
		testClasses.add(StackTest3_1_6_8.class);
		testClasses.add(StackTest3_1_7_8.class);
		testClasses.add(StackTest3_2_3_4.class);
		testClasses.add(StackTest3_2_4_6.class);
		testClasses.add(StackTest3_2_4_7.class);
		testClasses.add(StackTest3_2_4_8.class);
		testClasses.add(StackTest3_2_5_6.class);
		testClasses.add(StackTest3_2_6_7.class);
		testClasses.add(StackTest3_2_6_8.class);
		testClasses.add(StackTest3_2_7_8.class);
		testClasses.add(StackTest3_3_4_6.class);
		testClasses.add(StackTest3_3_4_7.class);
		testClasses.add(StackTest3_3_4_8.class);
		testClasses.add(StackTest3_4_5_6.class);
		testClasses.add(StackTest3_4_6_7.class);
		testClasses.add(StackTest3_4_6_8.class);
		testClasses.add(StackTest3_4_7_8.class);
		testClasses.add(StackTest3_5_6_7.class);
		testClasses.add(StackTest3_5_6_8.class);
		testClasses.add(StackTest3_6_7_8.class);
		testClasses.add(StackTest4_1_2_3_4.class);
		testClasses.add(StackTest4_1_2_4_6.class);
		testClasses.add(StackTest4_1_2_4_7.class);
		testClasses.add(StackTest4_1_2_4_8.class);
		testClasses.add(StackTest4_1_2_5_6.class);
		testClasses.add(StackTest4_1_2_6_7.class);
		testClasses.add(StackTest4_1_2_6_8.class);
		testClasses.add(StackTest4_1_2_7_8.class);
		testClasses.add(StackTest4_1_3_4_6.class);
		testClasses.add(StackTest4_1_3_4_7.class);
		testClasses.add(StackTest4_1_3_4_8.class);
		testClasses.add(StackTest4_1_4_5_6.class);
		testClasses.add(StackTest4_1_4_6_7.class);
		testClasses.add(StackTest4_1_4_6_8.class);
		testClasses.add(StackTest4_1_4_7_8.class);
		testClasses.add(StackTest4_1_5_6_7.class);
		testClasses.add(StackTest4_1_5_6_8.class);
		testClasses.add(StackTest4_1_6_7_8.class);
		testClasses.add(StackTest4_2_3_4_6.class);
		testClasses.add(StackTest4_2_3_4_7.class);
		testClasses.add(StackTest4_2_3_4_8.class);
		testClasses.add(StackTest4_2_4_5_6.class);
		testClasses.add(StackTest4_2_4_6_7.class);
		testClasses.add(StackTest4_2_4_6_8.class);
		testClasses.add(StackTest4_2_4_7_8.class);
		testClasses.add(StackTest4_2_5_6_7.class);
		testClasses.add(StackTest4_2_5_6_8.class);
		testClasses.add(StackTest4_2_6_7_8.class);
		testClasses.add(StackTest4_3_4_5_6.class);
		testClasses.add(StackTest4_3_4_6_7.class);
		testClasses.add(StackTest4_3_4_6_8.class);
		testClasses.add(StackTest4_3_4_7_8.class);
		testClasses.add(StackTest4_4_5_6_7.class);
		testClasses.add(StackTest4_4_5_6_8.class);
		testClasses.add(StackTest4_4_6_7_8.class);
		testClasses.add(StackTest4_5_6_7_8.class);
		testClasses.add(StackTest5_1_2_3_4_6.class);
		testClasses.add(StackTest5_1_2_3_4_7.class);
		testClasses.add(StackTest5_1_2_3_4_8.class);
		testClasses.add(StackTest5_1_2_4_5_6.class);
		testClasses.add(StackTest5_1_2_4_6_7.class);
		testClasses.add(StackTest5_1_2_4_6_8.class);
		testClasses.add(StackTest5_1_2_4_7_8.class);
		testClasses.add(StackTest5_1_2_5_6_7.class);
		testClasses.add(StackTest5_1_2_5_6_8.class);
		testClasses.add(StackTest5_1_2_6_7_8.class);
		testClasses.add(StackTest5_1_3_4_5_6.class);
		testClasses.add(StackTest5_1_3_4_6_7.class);
		testClasses.add(StackTest5_1_3_4_6_8.class);
		testClasses.add(StackTest5_1_3_4_7_8.class);
		testClasses.add(StackTest5_1_4_5_6_7.class);
		testClasses.add(StackTest5_1_4_5_6_8.class);
		testClasses.add(StackTest5_1_4_6_7_8.class);
		testClasses.add(StackTest5_1_5_6_7_8.class);
		testClasses.add(StackTest5_2_3_4_5_6.class);
		testClasses.add(StackTest5_2_3_4_6_7.class);
		testClasses.add(StackTest5_2_3_4_6_8.class);
		testClasses.add(StackTest5_2_3_4_7_8.class);
		testClasses.add(StackTest5_2_4_5_6_7.class);
		testClasses.add(StackTest5_2_4_5_6_8.class);
		testClasses.add(StackTest5_2_4_6_7_8.class);
		testClasses.add(StackTest5_2_5_6_7_8.class);
		testClasses.add(StackTest5_3_4_5_6_7.class);
		testClasses.add(StackTest5_3_4_5_6_8.class);
		testClasses.add(StackTest5_3_4_6_7_8.class);
		testClasses.add(StackTest5_4_5_6_7_8.class);
		testClasses.add(StackTest6_1_2_3_4_5_6.class);
		testClasses.add(StackTest6_1_2_3_4_6_7.class);
		testClasses.add(StackTest6_1_2_3_4_6_8.class);
		testClasses.add(StackTest6_1_2_3_4_7_8.class);
		testClasses.add(StackTest6_1_2_4_5_6_7.class);
		testClasses.add(StackTest6_1_2_4_5_6_8.class);
		testClasses.add(StackTest6_1_2_4_6_7_8.class);
		testClasses.add(StackTest6_1_2_5_6_7_8.class);
		testClasses.add(StackTest6_1_3_4_5_6_7.class);
		testClasses.add(StackTest6_1_3_4_5_6_8.class);
		testClasses.add(StackTest6_1_3_4_6_7_8.class);
		testClasses.add(StackTest6_1_4_5_6_7_8.class);
		testClasses.add(StackTest6_2_3_4_5_6_7.class);
		testClasses.add(StackTest6_2_3_4_5_6_8.class);
		testClasses.add(StackTest6_2_3_4_6_7_8.class);
		testClasses.add(StackTest6_2_4_5_6_7_8.class);
		testClasses.add(StackTest6_3_4_5_6_7_8.class);
		testClasses.add(StackTest7_1_2_3_4_5_6_7.class);
		testClasses.add(StackTest7_1_2_3_4_5_6_8.class);
		testClasses.add(StackTest7_1_2_3_4_6_7_8.class);
		testClasses.add(StackTest7_1_2_4_5_6_7_8.class);
		testClasses.add(StackTest7_1_3_4_5_6_7_8.class);
		testClasses.add(StackTest7_2_3_4_5_6_7_8.class);
		testClasses.add(StackTest8_1_2_3_4_5_6_7_8.class);

		
		programClasses = new ArrayList<Class<?>>();
		//programClasses.add(StackCorrect.class);
		programClasses.add(StackBreakingProperty1And2.class);
		programClasses.add(StackBreakingProperty2a.class);
		programClasses.add(StackBreakingProperty2aAnd3a.class);
		programClasses.add(StackBreakingProperty2b.class);
		programClasses.add(StackBreakingProperty2bAnd3b.class);
		programClasses.add(StackBreakingProperty3a.class);
		programClasses.add(StackBreakingProperty3aAnd4a.class);
		programClasses.add(StackBreakingProperty3b.class);
		programClasses.add(StackBreakingProperty3bAnd4b.class);
		programClasses.add(StackBreakingProperty4a.class);
		programClasses.add(StackBreakingProperty4aAnd2a.class);
		programClasses.add(StackBreakingProperty4b.class);
		programClasses.add(StackBreakingProperty4bAnd2b.class);
		programClasses.add(StackBreakingProperty5.class);
		programClasses.add(StackBreakingProperty5And7.class);
		programClasses.add(StackBreakingProperty7.class);
		
		TestAllVariations.testAllVariations(new StackTestUtility(), testClasses, programClasses);
		
	}

}
